package com.meatball.iot.driver.doormagnet.data

import com.alibaba.fastjson.annotation.JSONField
import com.meatball.iot.driver.doormagnet.enums.MsgType

/**
 * TODO 门磁数据接收DTO
 *
 * @property msgType
 * @property subData
 *
 * @author 张翔宇
 * @since 2024年5月31日
 */
data class DoorMagnetDto(
    val msgType: MsgType,
    val subData: SubData
) {
    /**
     * TODO 数据
     *
     * @property dataStreamId 数据点id
     * @property deviceId 设备ID
     * @property deviceName 设备类型(室内/室外)
     * @property imei 设备IMEI
     * @property productId 产品id
     * @property time 上报时间，时间戳
     * @property value 设备上报数值
     */
    data class SubData(
        @JSONField(name = "datastreamId")
        val dataStreamId: String?,
        val deviceId: String,
        val deviceName: String,
        val imei: String,
        val productId: String,
        val time: Long,
//        val value: Value?
        val value: String?
    ) {
        /**
         * TODO 设备上报数据
         *
         * @property data 数据内容
         * @property type 类型
         */
        data class Value(
            val data: String,
            val type: Int
        )
    }
}
